﻿/// <reference path="Solution.Admin.jCommon.js" />

if (typeof (Solution) == 'undefined') Solution = {};
if (typeof (Solution.Admin) == 'undefined') Solution.Admin = {};
Solution.Admin.AtcCategory = {
    Init: function () {
        this.Create();
    },
    gridID: '#List',
    CreateGrid: function (Url, UrlEdit, EditAdvance) {
        var thisObj = this;
        var Pager = thisObj.gridID + 'Pager';
        var lastselobj = { lastsel: 0 };
        var lastselObj = lastselobj;
        $(thisObj.gridID).jqGrid({
            url: Url,
            datatype: 'json',
            mtype: 'GET',
            colNames: ['CategoryId', 'Alias', 'Display Name', 'Detail', 'flag'],
            colModel: [
                          { name: 'Id', index: 'Id', width: 40, align: 'left', editable: false, editoptions: { readonly: true} },
                          { name: 'Alias', index: 'Alias', width: 80, align: 'left', editable: true },
                          { name: 'DisplayName', index: 'DisplayName', width: 200, align: 'left', editable: true },
                          { name: 'Detail', index: 'Detail', width: 280, align: 'left', editable: true },
                          { name: 'flag', index: 'flag', width: 50, align: 'left', editable: true, hidden: false, viewable: true, recreateForm: true }
                          ],
            pager: jQuery(Pager),
            rowNum: 20,
            rowList: [10, 20, 50],
            height: 400,
            width: 933,
            sortname: 'Id',
            sortorder: "asc",
            viewrecords: true,
            editurl: UrlEdit,
            multiselect: true,
            shrinkToFit: true,
            rownumbers: true,
            jsonReader: {
                root: "rows",
                page: "page",
                total: "total",
                records: "records",
                repeatitems: true,
                id: "0"
            },
            subGrid: false,
            subGridUrl: EditAdvance,
            subGridModel: [{ name: ['ArticleID', 'Name', 'PublishDate', 'Author'],
                width: [55, 200, 80, 80],
                params: ['CategoryId']
            }
                                   ],
            ondblClickRow: function (id) {
                jQuery(thisObj.gridID).jqGrid('editRow', id, true, '', function (response, postdata) { if (response.responseText != '"err"') { Solution.Admin.Core.ShowNotif('s', 0); thisObj.ReloadGrid(); } else Solution.Admin.Core.ShowNotif('e', -1); return true; }, ''); //  ('editRow', rowid, keys, oneditfunc, succesfunc, url, extraparam, aftersavefunc, errorfunc, afterrestorefunc);
                lastselObj.lastsel = id;
            },
            beforeSelectRow: function (id, e) {
                return Solution.Admin.jCommon.beforeSelectRow(thisObj.gridID, id, e, lastselObj);
            },
            caption: ''
        });
        jQuery(thisObj.gridID).jqGrid('navGrid', Pager,
                { add: true, edit: true, del: true }, //options
                {closeAfterEdit: true, afterSubmit: function (response, postdata) { if (response.responseText != '"err"') { Solution.Admin.Core.ShowNotif('s', 0); thisObj.ReloadGrid(); } else Solution.Admin.Core.ShowNotif('e', -1); return true; } },
                { closeAfterAdd: true, afterSubmit: function (response, postdata) { if (response.responseText != '"err"') { Solution.Admin.Core.ShowNotif('s', 0); thisObj.ReloadGrid(); } else Solution.Admin.Core.ShowNotif('e', -1); return true; } }
        );
    },
    Create: function () {
        Solution.Admin.jCommon.CreateNews(this.gridID);
    },
    ReloadGrid: function () {
        Solution.Admin.jCommon.ReloadGrid(this.gridID);
    },
    ShowBin: function (Url, showBin) {
        Solution.Admin.jCommon.ShowBin(this.gridID, Url, showBin);
    },
    DeleteRows: function (_URL, delForever) {
        Solution.Admin.jCommon.DeleteRows(this.gridID, _URL, delForever);
    }
}

// resize grid
//        jQuery("#list").jqGrid('gridResize',
//            { minWidth: 350, maxWidth: 800, minHeight: 200, maxHeight: 350 }
//        );


//function AutoResize(gridID) {

//    colModel = [
//                          { name: 'CategoryId', index: 'CategoryId', width: 40, align: 'left' },
//                          { name: 'Alias', index: 'Alias', width: 40, align: 'left' },
//                          { name: 'DisplayName', index: 'DisplayName', width: 300, align: 'left' },
//                          { name: 'Detail', index: 'Detail', width: 300, align: 'left' },
//                          { name: 'flag', index: 'flag', width: 50, align: 'left' }
//                        ]


//    var arrayAutoResize = ['Alias', 'CategoryId'];
//    for (var i = 0; i < arrayAutoResize.length; i++) {
//        var trs = gridID + ' tr';
//        var _strth = gridID + '_' + arrayAutoResize[i];
//        var _th = $(_strth);
//        var _div = $('div', _th).eq(0);
//        var _txtdiv = $(_div).text();
//        _txtdiv1 = '<span>' + _txtdiv + '</span>';
//        $(_div).html(_txtdiv1);
//        var _spandiv = $('span', _div);
//        var _spanWith = $(_spandiv).width();
//        $(_div).html(_txtdiv);
//        var _max = (_spanWith + 7) || 0;
//        var _trsi;
//        $(trs).each(function (index, item) {
//            var rowID = jQuery(item).attr('id');
//            if (typeof (rowID) != 'undefined') {
//                var rowData = jQuery(gridID).jqGrid('getRowData', rowID);
//                if (!$.isEmptyObject(rowData)) {
//                    _trsi = item;
//                    var _strCol = 'td[aria-describedby*="' + arrayAutoResize[i] + '"]';
//                    var col = $(_strCol, item);
//                    var _tmp = $(col).html();
//                    _tmp1 = '<span >' + _tmp + '</span>';
//                    $(col).html(_tmp1);
//                    var _size = $(col).children('span').eq(0).width();
//                    var _valSize = parseFloat(_size);
//                    if (_valSize > _max)
//                        _max = (_valSize + 7);
//                    $(col).html(_tmp);
//                }
//                else {
//                }
//            }
//        });
//        var _number;
//        $(_trsi).children().each(function (_index, _item) {
//            var _attr = $(_item).attr("aria-describedby");
//            if (('#' + _attr) == (gridID + '_' + arrayAutoResize[i])) {
//                return (_number = _index);
//            }
//        });
//        var _strFirstrow = gridID + ' .jqgfirstrow';
//        var _firstRow = $(_strFirstrow);
//        var _Celli = $('td', _firstRow).eq(_number);
//        var RemoveSharpGridID = gridID.substr(1, (gridID.length - 1));
//        var tbs = '#gview_' + RemoveSharpGridID + ' table';
//        var tds = $(tbs).eq(2).children().children().children();
//        var _valtdfooter = parseFloat($(tds).eq(_number)) || 0;
//        _max = _max > _valtdfooter ? _max : _valtdfooter;

//        //set width
//        $(_th).width(_max);
//        $(_Celli).width(_max);
//        $(tds).eq(_number).width(_max);
//        //alert(arrayAutoResize[i]);

//        //why not run?
//        // $(gridID).jqGrid('setColProp', arrayAutoResize[i], { width: _max });
//        // var gw = $(gridID).jqGrid('getGridParam', 'width');
//        //  $(gridID).jqGrid('setGridWidth', gw);
//    }
//});